package interview.arraysandstrings;

import java.util.Arrays;

public class IsAnagrams {

	// O(n) + Constant space
	public boolean isAnagrams1(String str1, String str2) {
		int[] alphabet = new int[256];
		for(int i = 0; i < alphabet.length; i++) {
			alphabet[i] = 0;
		}

		char[] array1 = str1.toCharArray();
		char[] array2 = str2.toCharArray();

		for(int i = 0; i < array1.length; i++) {
			alphabet[array1[i]]++;
		}

		for(int i = 0; i < array2.length; i++) {
			alphabet[array2[i]]--;
		}

		for(int i = 0; i < alphabet.length; i++) {
			if(alphabet[i] != 0) {
				return false;
			}
		}

		return true;
	}

	// O(nlogn)
	public boolean isAnagrams2(String str1, String str2) {
		char[] array1 = str1.toCharArray();
		char[] array2 = str2.toCharArray();

		Arrays.sort(array1);
		Arrays.sort(array2);

		return Arrays.equals(array1, array2);
	}
}
